document.write('<link rel="stylesheet" type="text/css" href="' + context
		+ '/system/tablequery/css/querylist4ext.css">');
document.write('<script type="text/javascript" src="' + context
		+ '/system/tablequery/js/querylist4extN.js"></script>');
document.write('<link rel="stylesheet" type="text/css" href="' + context
		+ '/app/maps/css/track.css">');
document.write('<script type="text/javascript" src="' + context
		+ '/app/maps/js/Clock.js"></script>');
document.write('<script type="text/javascript" src="' + context
		+ '/app/maps/js/nsmap.js"></script>');
document.write('<script type="text/javascript" src="' + context
		+ '/app/maps/js/epoint.js"></script>');

var pointArrary = [];
var tag = 0;
var pMap = new HashMap();
var refreshTime = 20000;// 1800000;

/**
 * 监控页面初始化
 */
function init() {
	inithelper();
	initMCPanel();
}

/**
 * 刷新控制台信息
 * 
 * @param {}
 *            queryList 监理标段信息列表
 */
function refreshMCPanel(queryList) {
	Ext.getCmp('mainMenu').hide.defer(0, Ext.getCmp('mainMenu'), [true]);

	Ext.MessageBox.show({
				title : '请等待...',
				msg : '正在重新加载监控数据...',
				progressText : 'Initializing...',
				width : 300,
				wait : true,
				waitConfig : {
					interval : 200
				},
				closable : false
			});

	var ids = '';

	Ext.each(queryList, function(item) {
				ids += item.SVBD_ID + ','
			});

	if (ids != '') {
		ids = ids.substring(0, ids.length - 1);
	}

	Ext.Ajax.request({
				// 请求地址
				url : context + "/app/mcaction.do?method=list",
				params : {
					ids : ids
				},
				// 成功时回调
				success : function(response, options) {
					var json = response.responseText;

					var o = Ext.util.JSON.decode(json);

					if (o.success) {
						clearPoints();

						/* 重新设置参数 */
						tag = 0;
						pointArrary.length = 0;
						pMap.clear();

						Ext.each(o.queryList, function(item) {
									var id = item.SVBD_ID;
									var str = getMCTabInfo(item);

									$('svlist_' + id).innerHTML = str;
								});

						loadMap();

						Ext.MessageBox.hide();
					} else {
						Ext.Msg.alert('提示', '获取监理标段信息出现异常！');
					}
				},
				failure : function(response, options) {
					// Ext.Msg.alert('提示', response.responseText);
					Ext.Msg.alert('提示', '监控服务调用出现异常！');
				}
			});
}

/**
 * 初始化控制台面板
 */
function initMCPanel() {
	Ext.Ajax.request({
				// 请求地址
				url : context + "/app/mcaction.do?method=list",
				params : {},
				// 成功时回调
				success : function(response, options) {

					var json = response.responseText;

					var o = Ext.util.JSON.decode(json);

					if (o.success) {
						Ext.QuickTips.init();

						var tabs = new Ext.TabPanel({
									id : 'consoletabs',
									region : 'center', // a center region is
									// ALWAYS
									// required for border layout
									closable : true,
									resizeTabs : true,
									minTabWidth : 150,
									tabWidth : 200,
									border : false,
									frame : true,
									deferredRender : false,
									enableTabScroll : true,
									margins : '1 1 1 0',
									width : 600,
									activeTab : 0
								});

						Ext.each(o.queryList, function(item) {
									var str = getMCTabInfo(item);

									tabs.add({
												id : 'tab_' + item.SVBD_ID,
												title : item.SVBD_NAME,
												tabTip : item.SVBD_NAME,
												iconCls : 'tabs',
												html : str,
												closable : false
											});
								});

						initPanel(tabs);

						loadMap();

						if (o.queryList.length > 0) {

							var task4mc = {
								run : function() {
									// refreshMCPanel(o.queryList);
									// handleRefresh();
								},// 执行任务时执行的函数
								interval : refreshTime
								// 任务间隔，毫秒为单位，这里是10秒(10000)
							}

							// 启动定时刷新任务
							setTimeout(function() {
										Ext.TaskMgr.start(task4mc);
									}, refreshTime);
						}
					} else {
						Ext.Msg.alert('提示', '获取监理标段信息出现异常！');
					}
				}
			});
}

/**
 * 获取监控面板tab内容信息
 * 
 * @param {}
 *            item
 * @return {}
 */
function getMCTabInfo(item) {
	var str = '';
	var infoKong = '<div id="svlist_' + item.SVBD_ID
			+ '" style="overflow-x: auto;overflow-y: auto;height: 350px;">';
	infoKong += '<table style="font-size:13px;margin:5px;" class="tab4list" align="center" width="95%" border="0">';
	infoKong += '<tr>';
	infoKong += '<td class="td2" width="70">监理单位：</td>';
	infoKong += '<td><b>' + item.SVBD_GROUP + '</b></td>';
	infoKong += '</tr>';
	infoKong += '<tr>';
	infoKong += '<td class="td2">设计单元：</td>';
	infoKong += '<td><input checked="true" type="checkbox" name="chk1" tag="'
			+ tag
			+ '" image="cp.gif" ti1="监理单位" ti2="设计单元" pa1="'
			+ item.SVBD_GROUP
			+ '" pa2="'
			+ item.C_NAME
			+ '" tlt="'
			+ item.C_NAME
			+ '" lon="'
			+ item.C_LON
			+ '" lat="'
			+ item.C_LAT
			+ '" value="" onclick="javascript:overlayBD(this);" title="显示/隐藏地图标记"><b>'
			+ item.C_NAME + '</b></td>';
	infoKong += '</tr>';
	var pointMap = new HashMap();
	pointMap.put('lon', item.C_LON);
	pointMap.put('lat', item.C_LAT);
	pointMap.put('pa2', item.SVBD_NAME);
	pointMap.put('tlt', item.SVBD_NAME);
	pointMap.put('wstr',
			creatWstr("监理单位", "设计单元", item.SVBD_GROUP, item.C_NAME));
	pointMap.put('img', "cp.gif");
	pointMap.put('tag', tag);
	pointArrary.push(pointMap);
	tag++;
	var bdstr = '';
	/* list 标段信息 */
	var idx = 0;
	Ext.each(item.CBLIST, function(bditem) {
		bdstr += '<span><input checked="true" type="checkbox" name="chk1" tag="'
				+ tag
				+ '" image="xiaoqi.png" ti1="设计单元:" ti2="单元标段：" pa1="'
				+ item.C_NAME
				+ '" pa2="'
				+ bditem.CB_NAME
				+ '" tlt="'
				+ bditem.CB_NAME
				+ '" lon="'
				+ bditem.CB_LON
				+ '" lat="'
				+ bditem.CB_LAT
				+ '" value="" onclick="javascript:overlayBD(this);" title="显示/隐藏地图标记">'
				+ bditem.CB_NAME + '</span> ';
		var pointMap = new HashMap();
		pointMap.put('lon', bditem.CB_LON);
		pointMap.put('lat', bditem.CB_LAT);
		pointMap.put('pa2', bditem.CB_NAME);
		pointMap.put('tlt', bditem.CB_NAME);
		pointMap.put('img', 'xiaoqi.png');
		pointMap.put('wstr', creatWstr("设计单元", "单元标段", item.C_NAME,
						bditem.CB_NAME));
		pointMap.put('tag', tag);
		pointArrary.push(pointMap);
		tag++;
		idx++;
	});

	infoKong += '<tr>';
	infoKong += '<td class="td2" valign="top">单元标段：</td>';
	infoKong += '<td><b>' + bdstr + '</b></td>';
	infoKong += '</tr>';
	infoKong += '</table>';

	infoKong += '<hr style="height:1px;border:none;border-top:1px solid #cccccc;">';

	infoKong += '<div style="font-size:13px;margin-left:15px;margin-bottom:10px;color:blue;font-weight:bold;">监理人员</div>';

	if (item.SVLIST && item.SVLIST.length > 0) {
		/* 监理人员信息 */
		Ext.each(item.SVLIST, function(svitem) {
			infoKong += '<table width="95%" class="tab4list" style="font-size:13px;margin:2px;" align="center" border="0">';
			infoKong += '<tr>';
			infoKong += '<td class="td2" width="70" align="center">&nbsp;<div id="sv_'
					+ svitem.SV_ID
					+ '" sex="'
					+ svitem.SV_SEX
					+ '" job="'
					+ svitem.SV_JOB
					+ '" mobile="'
					+ svitem.SV_MOBILE
					+ '" onmouseover="javascript:showSVDetail(this);">'
					+ svitem.SV_NAME + '</div></td>';
			infoKong += '<td>';
			infoKong += '<table width="100%" style="font-size:13px;" align="center" cellspacing="0" cellpadding="0" border="0">';
			infoKong += '<tr>';
			infoKong += '<td width="70" valign="top" style="border:0px;height:25px;line-height:25px;">&nbsp;负责标段：</td>';
			infoKong += '<td style="border:0px;">&nbsp;<b>' + svitem.SV_BD
					+ '</b></td>';
			infoKong += '</tr>';

			var kqList = svitem.KQLIST;

			if (kqList && kqList.length > 0) {
				var kqitem = kqList[0];
				var ctime = formatTime(kqitem.K_CTIME);

				var annexItem = kqitem.K_ZHAOPIAN;

				var imgstr = (annexItem && annexItem.length > 0) ? getItemPic(
						annexItem[0], svitem.SV_NAME, ctime, '签到') : '';
				infoKong += '<tr>';
				infoKong += '<td valign="top" style="border:0px;height:25px;line-height:25px;"><input checked="true" type="checkbox" name="chk1" image="qiandao.png" tag="'
						+ tag
						+ '" ti1="监理姓名" ti2="签到时间" pa1="'
						+ svitem.SV_NAME
						+ '" pa2="'
						+ ctime
						+ '" tlt="考勤签到" lon="'
						+ kqitem.K_LON
						+ '" lat="'
						+ kqitem.K_LAT
						+ '" value="" onclick="javascript:overlayBD(this);" title="显示/隐藏地图标记">签到信息：</td>';
				infoKong += '<td style="border:0px;">' + ctime + imgstr
						+ '</td>';
				infoKong += '</tr>';
				var pointMap = new HashMap();
				pointMap.put('lon', kqitem.K_LON);
				pointMap.put('lat', kqitem.K_LAT);
				pointMap.put('img', 'qiandao.png');
				pointMap.put('pa2', ctime);
				pointMap.put('tlt', '考勤签到');
				pointMap.put('wstr', creatWstr("监理姓名", "签到时间", svitem.SV_NAME,
								ctime));
				pointMap.put('tag', tag);
				pointArrary.push(pointMap);
				tag++;
			} else {
				infoKong += '<tr>';
				infoKong += '<td valign="top" style="border:0px;height:25px;line-height:25px;">&nbsp;签到信息：</td>';
				infoKong += '<td height="25" style="border:0px;">&nbsp;无签到信息</td>';
				infoKong += '</tr>';
			}

			if (kqList && kqList.length > 1) {
				var kqitem = kqList[1];
				var annexItem = kqitem.K_ZHAOPIAN;
				var ctime = formatTime(kqitem.K_CTIME);

				var imgstr = (annexItem && annexItem.length > 0) ? getItemPic(
						annexItem[0], svitem.SV_NAME, ctime, '签退') : '';
				infoKong += '<tr>';
				infoKong += '<td valign="top" style="border:0px;height:25px;line-height:25px;"><input checked="true" type="checkbox" name="chk1" image="qiantui.png" tag="'
						+ tag
						+ '" ti1="监理姓名" ti2="签退时间" pa1="'
						+ svitem.SV_NAME
						+ '" pa2="'
						+ ctime
						+ '" tlt="考勤签退" lon="'
						+ kqitem.K_LON
						+ '" lat="'
						+ kqitem.K_LAT
						+ '" value="" onclick="javascript:overlayBD(this);" title="显示/隐藏地图标记">签退信息：</td>';
				infoKong += '<td style="border:0px;">' + ctime + imgstr
						+ '</td>';
				infoKong += '</tr>';
				var pointMap = new HashMap();
				pointMap.put('lon', kqitem.K_LON);
				pointMap.put('lat', kqitem.K_LAT);
				pointMap.put('img', 'qiantui.png');
				pointMap.put('pa2', ctime);
				pointMap.put('tlt', "考勤签退");
				pointMap.put('wstr', creatWstr("监理姓名", "签退时间", svitem.SV_NAME,
								ctime));
				pointMap.put('tag', tag);
				pointArrary.push(pointMap);
				tag++;
			} else {
				infoKong += '<tr>';
				infoKong += '<td valign="top" style="border:0px;height:25px;line-height:25px;">&nbsp;签退信息：</td>';
				infoKong += '<td height="25" style="border:0px;height:25px;line-height:25px;">&nbsp;无签退信息</td>';
				infoKong += '</tr>';
			}

			var tkList = svitem.TKLIST;

			if (tkList && tkList.length > 0) {
				var tkItem = tkList[0];

				infoKong += '<tr>';
				infoKong += '<td valign="top" style="border:0px;height:25px;line-height:25px;"><input checked="true" '
						+ 'type="checkbox" name="chk1" tag="'
						+ tag
						+ '" image="xiaoren.png" ti1="设计单元:" ti2="单元标段：" pa1="'
						+ tkItem.USERNAME
						+ '" pa2="'
						+ formatTime(tkItem.CTIME)
						+ '" tlt="最新轨迹" lon="'
						+ tkItem.LON
						+ '" lat="'
						+ tkItem.LAT
						+ '" value="" onclick="javascript:overlayBD(this);" title="显示/隐藏地图标记">最新轨迹：</td>';
				infoKong += '<td style="border:0px;height:25px;line-height:25px;">'
						+ formatTime(tkItem.CTIME)
						+ '&nbsp;坐标: '
						+ tkItem.LON
						+ ',' + tkItem.LAT + '</td>';
				infoKong += '</tr>';

				var pointMap = new HashMap();
				pointMap.put('lon', tkItem.LON);
				pointMap.put('lat', tkItem.LAT);
				pointMap.put('img', 'xiaoren.png');
				pointMap.put('pa2', formatTime(tkItem.CTIME));
				pointMap.put('tlt', '最新轨迹');
				pointMap.put('wstr', creatWstr("监理姓名", "轨迹时间", tkItem.USERNAME,
								formatTime(tkItem.CTIME)));
				pointMap.put('tag', tag);
				pointArrary.push(pointMap);
				tag++;
			} else {
				infoKong += '<tr>';
				infoKong += '<td valign="top" style="border:0px;height:25px;line-height:25px;">&nbsp;轨迹信息：</td>';
				infoKong += '<td style="border:0px;height:25px;line-height:25px;">&nbsp;无轨迹信息</td>';
				infoKong += '</tr>';
			}

			infoKong += '</table>';
			infoKong += '</td>';
			infoKong += '</tr>';
			infoKong += '</table>';
		});

	} else {
		infoKong += '<div style="margin:15px;"><font color="red">该监理标段目前没有设定监理人员</font></div>';
	}

	infoKong += '</div>';

	str += infoKong;

	return str;
}

function creatWstr(ti1, ti2, pa1, pa2) {
	var wstr = '<table style="font-size:13px;" width="400" border="0">';
	wstr += '<tr>';
	wstr += '<td width="80">' + ti1 + '：</td>';
	wstr += '<td><b>' + pa1 + '</b></td>';
	wstr += '</tr>';
	wstr += '<tr>';
	wstr += '<td width="80">' + ti2 + '：</td>';
	wstr += '<td><b>' + pa2 + '</b></td>';
	wstr += '</tr></table>';
	return wstr
}

/**
 * 显示/隐藏 地图标注
 * 
 * @param {}
 *            thizz
 */
function overlayBD(thizz) {
	var lon = thizz.getAttribute('lon');
	var lat = thizz.getAttribute('lat');
	var key = thizz.getAttribute('tag');
	var pointObject = pMap.get(key);
	if (thizz.checked == true) {
		var img = thizz.getAttribute('image');
		var ti1 = thizz.getAttribute('ti1');
		var ti2 = thizz.getAttribute('ti2');
		var pa1 = thizz.getAttribute('pa1');
		var pa2 = thizz.getAttribute('pa2');
		var tlt = thizz.getAttribute('tlt');
		var wstr = creatWstr(ti1, ti2, pa1, pa2)
		if (pointObject != null) {
			alert("坐标标注已经存在");
			return;
		}
		markPoin(lon, lat, wstr, img, key, tlt);
	} else {
		if (pointObject != null) {
			webgis.removeOverlay(pointObject);
			pointObject.release();// 内存释放
			pointObject = null;
			pMap.remove(key);
		} else {
			alert("未添加坐标标注对象！");
			return;
		}
	}
}
function initPanel(tabs) {
	var menu = new Ext.menu.Menu({
				id : 'mainMenu',
				style : {
					overflow : 'visible' // For the Combo popup
				},
				items : [tabs]
			});

	var toolbar = new Ext.Toolbar({
				id : 'toolbar',
				autoWidth : true,
				autoShow : true
			});

	toolbar.add({
		text : '<span style="font-size: 13px;" title="查看历史流转记录">监查控制面板</span>',
		iconCls : 'bmenu', // <-- icon
		menu : menu
			// assign menu by instance
		});

	toolbar.add('-');

	toolbar.addText('<font style="font-size: 13px;">监查人员：' + userName
			+ ', 时间：</font><span id="clock" style="font-size:13px;"></span>');

	var viewport = new Ext.Viewport({
		layout : 'fit',
		items : [{
					tbar : toolbar,
					region : 'center',
					layout : 'column',
					border : false,
					autoScroll : false,
					html : '<div id="mapObj" style="width:100%;height:100%;"></div>'
				}],

		listeners : {
			render : function() {

			}
		}
	});

	/* 显示当前时间 */
	var clock = new Clock();
	clock.display(document.getElementById('clock'));
}

var webgis;

/**
 * 加载地图标注点
 */
function loadMap() {
	// 创建地图对象
	webgis = new EMaps("mapObj");
	
	// 第一次数据
	//drawBridge(webgis);
	drawRiverway(webgis);
	//drawPicket(webgis);
	// 第二次数据
//	drawRiverway2(webgis);
//	drawPicket2(webgis);
	// 第三次数据
//	drawRiverway3(webgis);
//	drawPicket3(webgis);
	// 第四次数据
		//	drawRiverway4(webgis);
		//	drawPicket4(webgis);
		//	drawBridge4(webgis);
		//	drawdhx4(webgis);
	
	// 添加地图控制拉杆
	drawmap(webgis);
	webgis.addControl(new ELargeMapControl());
	// 设置地图的中心和缩放级别
	webgis.centerAndZoom(new EPoint(emapCenter), parseInt(defaultZoomSize));
	
	Ext.each(pointArrary, function(arr) {
				var map = arr;
				markPoin(map.get('lon'), map.get('lat'), map.get('wstr'), map
								.get('img'), map.get('tag'), map.get('tlt'));
			});
}

/**
 * 清空地图标注点
 */
function clearPoints() {
	Ext.each(pMap.values(), function(pointObj) {
				webgis.removeOverlay(pointObj);
				pointObj.release();// 内存释放
				pointObj = null;
			});
}

/**
 * 标注地图标记点
 * 
 * @param {}
 *            lon 经度
 * @param {}
 *            lat 纬度
 * @param {}
 *            wstr 显示内容
 * @param {}
 *            img 显示图片
 * @param {}
 *            key 主键
 * @param {}
 *            ps2 标题
 */
function markPoin(lon, lat, wstr, img, key, ps2) {
	var mapKong = '<a href="javascript:zoomoutIt(\'' + lon + '\', \'' + lat
			+ '\');">定位</a>';
	mapKong += '&nbsp;<a href="javascript:zoominIt(\'' + lon + '\', \'' + lat
			+ '\');">回置</a>';
	var infoKong = '<hr>';
	infoKong += wstr;
	var point = makepoint(lon, lat);
	var icon = new EIcon(
			// serverPath + context + '/app/maps/images/'+img, 24, 25, -5,
			// -15);
			serverPath + context + '/app/maps/images/' + img, 24, 25, 0, 0);
	var infoWindow = new EInfoWindow(
			'<font style="font-size:14px;font-weight:bold;">' + ps2
					+ '</font>&nbsp&nbsp&nbsp&nbsp;' + mapKong, infoKong);
	var pointObject = new EMarker("", point, icon, infoWindow);
	pMap.put(key, pointObject);
	webgis.addOverlay(pointObject);
}
function deletePoint(lon, lat) {
	webgis.removeOverlay(makepoint(lon, lat));
}

function zoomoutIt(lon, lat) {
	// webgis.setMode('zoomin');
	// 设置地图的中心和缩放级别
	webgis.centerAndZoom(makepoint(lon, lat), 14);
}

function zoominIt(lon, lat) {
	// webgis.setMode('zoomin');
	// 设置地图的中心和缩放级别
	webgis.centerAndZoom(makepoint(lon, lat), 8);
}

function getItemPic(item, name, cdate, kq) {
	var id = item.id;
	var str = '';
	var type = item.type;
	if (type == 'jpg') {
		var url = context + '/temp-store/' + item.folder + '/' + id + '.data';

		str += '<div class="divn" style="width:70px;" title="查看原图" onClick="javascript:viewImg(\''
				+ id
				+ '\', \''
				+ name
				+ '\', \''
				+ cdate
				+ '\', \''
				+ kq
				+ '\');">'
				+ '<img item="img" url="'
				+ item.url
				+ '" id="'
				+ id
				+ '" style="cursor:hand;" width="64" height="64" src="'
				+ url
				+ '"/></div>'
	} else {
		str += '<div class="divn" style="width:70px;" title="下载文件" onclick="javascript:viewAnnex(\''
				+ id
				+ '\');">'
				+ '<img style="cursor:hand;" width="64" height="64" src="'
				+ context + '/app/file/images/file.png"/></div>'
	}
	return str;
}

function viewImg(id, name, cdate, kq) {
	Ext.getCmp('mainMenu').hide.defer(0, Ext.getCmp('mainMenu'), [true]);

	var str = '<img src="' + $(id).getAttribute('url')
			+ '" width="100%" height="100%">';

	var win = new Ext.Window({
				renderTo : Ext.getBody(),
				layout : 'fit',
				width : 500,
				height : 400,
				title : '考勤照片: ' + name + ' ' + cdate + ' ' + kq,
				resizable : true,
				maximizable : true,
				plain : true,
				isTopContainer : true,
				modal : true,
				html : str,

				buttons : [{
							text : '下 载',
							handler : function() {
								viewAnnex(id);
							}
						}, {
							text : '关 闭',
							handler : function() {
								win.close();
							}
						}]
			});

	win.show(this);
}

function showSVDetail(thizz) {
	var str = '<div style="margin:2px;">性别: ' + thizz.getAttribute('sex')
			+ '</div>';
	str += '<div style="margin:2px;">电话: ' + thizz.getAttribute('mobile')
			+ '</div>';
	str += '<div style="margin:2px;">职务: ' + thizz.getAttribute('job')
			+ '</div>';

	new Ext.ToolTip({
				target : thizz.id,
				anchor : 'top',
				anchorOffset : 35,
				width : 200,
				html : str
			});
}

function getItemPicPath(item) {
	var id = item.id;
	var url = context + '/temp-store/' + item.folder + '/' + id + '.data'
	return url;
}